package com.xinqi.modules.stats.score.service;

import com.xinqi.common.base.response.PageInfo;
import com.xinqi.common.mybatis.data.service.BaseService;
import com.xinqi.modules.stats.score.domain.CourseTotalScoreOfflineEntity;
import com.xinqi.modules.stats.score.dto.req.*;
import com.xinqi.modules.stats.score.dto.rsp.CourseTotalScoreOfflineResultDTO;
import com.xinqi.modules.stats.score.dto.rsp.CourseTotalScoreOfflineStudentResultDTO;
import com.xinqi.modules.stats.score.dto.rsp.CourseTotalScoreStudentOfflineInfoResultDTO;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * 线下成绩主表服务层
 *
 * @author: system
 * @date: 2023/03/26
 */
public interface CourseTotalScoreOfflineService extends BaseService<CourseTotalScoreOfflineEntity> {

    boolean create(CourseTotalScoreOfflineCreateDTO create);

    boolean updateById(CourseTotalScoreOfflineUpdateDTO update);

    List<CourseTotalScoreOfflineResultDTO> select(CourseTotalScoreOfflineQueryDTO delete);

    PageInfo<CourseTotalScoreOfflineResultDTO> selectPage(CourseTotalScoreOfflineQueryDTO query);

    List<CourseTotalScoreOfflineResultDTO> studentSelect(CourseTotalScoreOfflineQueryDTO query);

    boolean deleteById(CourseTotalScoreOfflineDeleteDTO delete);

    List<CourseTotalScoreOfflineStudentResultDTO> selectStudentScore(CourseTotalScoreOfflineStudentQueryDTO query);

    boolean updateStudentScore(CourseTotalScoreOfflineStudentUpdateDTO update);

    boolean updateBatchStudentScore(List<CourseTotalScoreOfflineStudentUpdateDTO> list);

    CourseTotalScoreStudentOfflineInfoResultDTO studentOfflineScore(CourseTotalScoreOfflineStudentQueryDTO dto);

    PageInfo<CourseTotalScoreOfflineStudentResultDTO> studentOfflineScorePage(CourseTotalScoreOfflineStudentQueryDTO dto);

    void downOfflineExcel(CourseTotalScoreOfflineStudentQueryDTO dto, HttpServletResponse response);

}
